Software testability

Software testability is the degree to which a software artifact (i.e. a software system, software module, requirements- or design document) supports testing in a given test context.

Testability is not an intrinsic property of a software artifact and can not be measured directly (such as software size). Instead testability is an extrinsic property which results from interdependency of the software to be tested and the test goals, test methods used, and test resources (i.e., the test context).

A lower degree of testability results in increased test effort. In extreme cases a lack of testability may hinder testing parts of the software or software requirements at all.

Contents

Background

The effort and effectiveness of software tests depends on numerous factors including:

Testability of Software Components

The testability of software components (modules, classes) is determined by factors such as:

The testability of software components can be improved by:

Testability of Requirements

Requirements need to fulfill the following criteria in order to be testable:

See also

References